﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Mappings;

namespace Apollo
{
    [NHibernateEntity(Table = "ProductConfigurations")]
    public class ProductConfiguration : ITrackable, ILegacy, IStateable
    {
        [PrimaryKey]
        public virtual int Id { get; set; }
        
        [BelongsTo(Column = "ID_Parent_Product")]
        public virtual Product Parent { get; set; }

        [BelongsTo(Column = "ID_Child_Product")]
        public virtual Product Child { get; set; }

        [Property]
        public virtual State State { get; set; }

        [Property]
        public virtual bool IsMandatory { get; set; }

        [Property]
        public virtual DateTime StartDate { get; set; }

        [Property]
        public virtual DateTime? EndDate { get; set; }

        [Property]
        public virtual string LegacyApplication { get; set; }

        [Property]
        public virtual string LegacyID { get; set; }
        
        [Property]
        public virtual DateTime InsertDate { get; set; }

        [Property]
        public virtual string InsertBy { get; set; }

        [Property]
        public virtual DateTime? ModifiedDate { get; set; }

        [Property]
        public virtual string ModifiedBy { get; set; }
    

    }

}
